
#ifndef EDITOREFFECTPROGRAM_H
#define EDITOREFFECTPROGRAM_H

#include <gfx/ieffectprogram.h>

class EditorEffectProgram : public iEffectProgram
{
  CE_OBJECT
private:
  iEffectProgram* _effectProgram;

public:
  EditorEffectProgram();
  ~EditorEffectProgram ();


  iEffectProgram* GetSource ();


  virtual void SetProgram (ceRenderPass pass, iProgram* program);
  virtual iProgram* GetProgram (ceRenderPass pass);

  virtual void BeginPass (ceRenderPass pass);
  virtual void EndPass (ceRenderPass pass);

  virtual void RegisterSemantic (const ceProgramParameterName& name, const std::string& parameterName);
  virtual void RegisterSemantic (ceProgramParameterBinding binding, const std::string& parameterName);

  virtual iProgramParameter* GetParameter(const ceProgramParameterName& name);
  virtual iProgramParameter* GetParameter(ceProgramParameterBinding binding);

};

#endif // EDITOREFFECTPROGRAM_H
